From: Christoph Krapp Date: Sat, 22 Nov 2025 19:42:33 +0000 (+0100) Subject: ipq40xx: fix second 5ghz radio on Netgear RBx40 X-Git-Url: http://git.openwrt.org/%22https:/collectd.org//%22%24PHP_SELF/%22https:/collectd.org/%22%24PHP_SELF?a=commitdiff_plain;h=f0909f7a05cbc0f3d91bae55df2d251f065a5b68;p=openwrt%2Fopenwrt.git ipq40xx: fix second 5ghz radio on Netgear RBx40 When support was added for the RBR40 and RBS40 it was assumed that they also share the same second 5ghz wifi chip as their bigger siblings. Turns out that instead of QCA9984 (RBx50, SRx60) these devices use QCA9886 like the RBx20 devices to. They also load different boardfiles for the IPQ4019 chip. This moves the wifi nodes from the orbi.dtsi to each device dts file and change the RBx40 boardfile variants. Signed-off-by: Christoph Krapp Link: https://github.com/openwrt/openwrt/pull/20877 Signed-off-by: Robert Marko --- diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi index 10aa56de27..9e58e0de40 100644 --- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi +++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-orbi.dtsi @@ -288,24 +288,3 @@ perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; wake-gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; }; - -&pcie_bridge0 { - wifi@0,0 { - compatible = "qcom,ath10k"; - reg = <0x00010000 0 0 0 0>; - ieee80211-freq-limit = <5470000 5875000>; - qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; - }; -}; - -&wifi0 { - status = "okay"; - - qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; -}; - -&wifi1 { - status = "okay"; - - qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; -}; diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr40.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr40.dts index 1c579dcdfb..799a1df1df 100644 --- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr40.dts +++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr40.dts @@ -10,3 +10,24 @@ bootargs = "root=/dev/mmcblk0p20 blkdevparts=mmcblk0:512K@17K(0:SBL1)ro,512K(0:BOOTCONFIG)ro,512K(0:QSEE)ro,512K(0:QSEE_ALT)ro,256K(0:CDT)ro,256K(0:CDT_ALT)ro,256K(0:DDRPARAMS)ro,256K(0:APPSBLENV)ro,1M(0:APPSBL)ro,1M(0:APPSBL_ALT)ro,256K(0:ART)ro,256K(ARTMTD)ro,2M(language)ro,256K(config)ro,256K(pot)ro,256K(traffic_meter)ro,256K(pot_bak)ro,256K(traffic_meter.bak)ro,3840K(kernel),31488K(rootfs),35328K@9233K(firmware),256K(mtdoops)ro,1457651200(reserved)ro,-(unallocated) rootfstype=squashfs,ext4 rootwait"; }; }; + +&pcie_bridge0 { + wifi@0,0 { + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5170000 5350000>; + qcom,ath10k-calibration-variant = "Netgear-RBK40"; + }; +}; + +&wifi0 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-RBK40"; +}; + +&wifi1 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-RBK40"; +}; diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr50.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr50.dts index 81e846fb1f..902ee821ee 100644 --- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr50.dts +++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbr50.dts @@ -26,3 +26,24 @@ &usb2 { status = "okay"; }; + +&pcie_bridge0 { + wifi@0,0 { + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5470000 5875000>; + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; + }; +}; + +&wifi0 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; +}; + +&wifi1 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; +}; diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs40.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs40.dts index 6ff0ed8bb1..882af0bb61 100644 --- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs40.dts +++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs40.dts @@ -10,3 +10,24 @@ bootargs = "root=/dev/mmcblk0p20 blkdevparts=mmcblk0:512K@17K(0:SBL1)ro,512K(0:BOOTCONFIG)ro,512K(0:QSEE)ro,512K(0:QSEE_ALT)ro,256K(0:CDT)ro,256K(0:CDT_ALT)ro,256K(0:DDRPARAMS)ro,256K(0:APPSBLENV)ro,1M(0:APPSBL)ro,1M(0:APPSBL_ALT)ro,256K(0:ART)ro,256K(ARTMTD)ro,2M(language)ro,256K(config)ro,256K(pot)ro,256K(traffic_meter)ro,256K(pot_bak)ro,256K(traffic_meter.bak)ro,3840K(kernel),31488K(rootfs),35328K@9233K(firmware),256K(mtdoops)ro,1457651200(reserved)ro,-(unallocated) rootfstype=squashfs,ext4 rootwait"; }; }; + +&pcie_bridge0 { + wifi@0,0 { + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5170000 5350000>; + qcom,ath10k-calibration-variant = "Netgear-RBK40"; + }; +}; + +&wifi0 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-RBK40"; +}; + +&wifi1 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-RBK40"; +}; diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs50.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs50.dts index 3ac6df3761..5453ad5f6d 100644 --- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs50.dts +++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-rbs50.dts @@ -26,3 +26,24 @@ &usb2 { status = "okay"; }; + +&pcie_bridge0 { + wifi@0,0 { + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5470000 5875000>; + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; + }; +}; + +&wifi0 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; +}; + +&wifi1 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; +}; diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srr60.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srr60.dts index c137b41ee8..0e1d855255 100644 --- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srr60.dts +++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srr60.dts @@ -10,3 +10,24 @@ bootargs = "root=/dev/mmcblk0p20 blkdevparts=mmcblk0:512K@17K(0:SBL1)ro,512K(0:BOOTCONFIG)ro,512K(0:QSEE)ro,512K(0:QSEE_1)ro,256K(0:CDT)ro,256K(0:CDT_1)ro,512K(0:BOOTCONFIG1)ro,256K(0:APPSBLENV)ro,1M(0:APPSBL)ro,1M(0:APPSBL_1)ro,256K(0:ART)ro,256K(ARTMTD)ro,2M(language)ro,256K(config)ro,256K(pot)ro,256K(traffic_meter)ro,256K(pot_bak)ro,256K(traffic_meter.bak)ro,3840K(kernel),31488K(rootfs),35328K@9233K(firmware),256K(mtdoops)ro,64K(cert)ro,3840K(kernel-2)ro,31488K(rootfs-2)ro,35328K@44881K(firmware-2)ro,5M(device_table)ro,17M(cp_file)ro,102737K(reserved)ro,-(unallocated) rootfstype=squashfs,ext4 rootwait"; }; }; + +&pcie_bridge0 { + wifi@0,0 { + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5470000 5875000>; + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; + }; +}; + +&wifi0 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; +}; + +&wifi1 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; +}; diff --git a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srs60.dts b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srs60.dts index 5b09e1ee24..70b4b896a7 100644 --- a/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srs60.dts +++ b/target/linux/ipq40xx/files-6.12/arch/arm/boot/dts/qcom/qcom-ipq4019-srs60.dts @@ -10,3 +10,24 @@ bootargs = "root=/dev/mmcblk0p20 blkdevparts=mmcblk0:512K@17K(0:SBL1)ro,512K(0:BOOTCONFIG)ro,512K(0:QSEE)ro,512K(0:QSEE_1)ro,256K(0:CDT)ro,256K(0:CDT_1)ro,512K(0:BOOTCONFIG1)ro,256K(0:APPSBLENV)ro,1M(0:APPSBL)ro,1M(0:APPSBL_1)ro,256K(0:ART)ro,256K(ARTMTD)ro,2M(language)ro,256K(config)ro,256K(pot)ro,256K(traffic_meter)ro,256K(pot_bak)ro,256K(traffic_meter.bak)ro,3840K(kernel),31488K(rootfs),35328K@9233K(firmware),256K(mtdoops)ro,64K(cert)ro,3840K(kernel-2)ro,31488K(rootfs-2)ro,35328K@44881K(firmware-2)ro,5M(device_table)ro,17M(cp_file)ro,102737K(reserved)ro,-(unallocated) rootfstype=squashfs,ext4 rootwait"; }; }; + +&pcie_bridge0 { + wifi@0,0 { + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5470000 5875000>; + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; + }; +}; + +&wifi0 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; +}; + +&wifi1 { + status = "okay"; + + qcom,ath10k-calibration-variant = "Netgear-Orbi-Pro-SRK60"; +}; diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk index 36f7e4047f..1d02a2fc1f 100644 --- a/target/linux/ipq40xx/image/generic.mk +++ b/target/linux/ipq40xx/image/generic.mk @@ -904,7 +904,7 @@ define Device/netgear_orbi append-rootfs | pad-rootfs | netgear-dni IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | \ sysupgrade-tar rootfs=$$$$@ | append-metadata - DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup + DEVICE_PACKAGES := e2fsprogs kmod-fs-ext4 losetup endef define Device/netgear_lbr20 @@ -967,6 +967,7 @@ define Device/netgear_rbx40 KERNEL_SIZE := 3932160 ROOTFS_SIZE := 32243712 IMAGE_SIZE := 36175872 + DEVICE_PACKAGES += ipq-wifi-netgear_rbk40 ath10k-firmware-qca9888-ct endef define Device/netgear_rbr40 @@ -991,6 +992,7 @@ define Device/netgear_rbx50 KERNEL_SIZE := 3932160 ROOTFS_SIZE := 32243712 IMAGE_SIZE := 36175872 + DEVICE_PACKAGES += ath10k-firmware-qca9984-ct endef define Device/netgear_rbr50 @@ -1015,6 +1017,7 @@ define Device/netgear_srx60 KERNEL_SIZE := 3932160 ROOTFS_SIZE := 32243712 IMAGE_SIZE := 36175872 + DEVICE_PACKAGES += ath10k-firmware-qca9984-ct endef define Device/netgear_srr60